<!doctype html>
<title>WebVTT overscan margin test</title>
<script src="../media-controls.js"></script>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script>
  setup(function() { internals.settings.setTextTrackMarginPercentage(5); });

  var makeTest = function(time, edgeName, marginAssertFunc) {
    var expectedText = "Checks " + edgeName + " margin";
    var t = async_test(expectedText);
    t.step(function() {
      var video = document.createElement('video');
      video.width = 320;
      video.height = 240;
      var track = document.createElement('track');
      track.src = "captions-webvtt/captions-overscan.vtt";
      track['default'] = true;
      track.kind = 'captions';
      video.appendChild(track);
      document.body.appendChild(video);

      video.src = '../content/test.ogv';
      video.oncanplaythrough = function() { video.currentTime = time; };
      video.onseeked = t.step_func(function() {
        var testCueDisplayBox = textTrackDisplayElement(video);

        assert_equals(video.currentTime, time, "video.currentTime");
        assert_equals(track.track.activeCues.length, 1, "activeCues.length");
        assert_equals(track.track.activeCues[0].text, expectedText, "activeCues[0].text");
        assert_equals(testCueDisplayBox.innerText, expectedText, "testCueDisplayBox.innerText");

        marginAssertFunc(testCueDisplayBox, video);
        t.done();
      });
    });
  };

  onload = function() {
    makeTest(0.5, "left", function(box, v) { assert_greater_than_equal(box.offsetLeft, v.width * 0.05); });
    makeTest(1.5, "right", function(box, v) { assert_less_than(box.offsetLeft + box.offsetWidth, v.width * 0.95); });
    makeTest(2.5, "bottom", function(box, v) { assert_less_than(box.offsetTop + box.offsetHeight, v.height * 0.95); });
    makeTest(3.5, "top", function(box, v) { assert_greater_than_equal(box.offsetTop, v.height * 0.05); });
  };
</script>
